#pragma once

#include <string>
#include <map>
#include <memory>

using namespace std;

#include "topconn_cfg.hpp"
#include "topconn_factory.hpp"
#include "topconn_connector.hpp"

namespace topconn
{
    class Connector;
    typedef std::shared_ptr<Connector>  ConnectorPtr_t;

    class Executor
    {
    private:
        ConnectorPtr_t m_connector;
        string m_protocal_name;
    public:
        Executor(const string&);
        ~Executor();
        const string& getProtocalType();
        ConnectorPtr_t   getConnector();
        int sendPack(ProtocalCfg& cfg, const string& type, const string& request, string& response,const string& atx);
    };
};